Computer systems generally use a memory hierarchy to meet the memory size and memory speed requirements for a given system. A memory hierarchy can include multiple levels of memory having different speeds and sizes. Levels within or closer to a processor core are generally faster and smaller than levels farther from the processor core. For example, the fastest level, closest to the processor core, can include a cache memory implemented with static random access memory (SRAM). An intermediate level can include main memory implemented with dynamic random access memory (DRAM). The next level further from the processor core can include block or bulk storage which is often implemented with a hard disk drive. An alternative form of bulk storage can be implemented using a solid-state nonvolatile medium such as flash memory. Flash memory and other solid-state technology can potentially provide an increase in speed, a decrease in power consumption, and an increase in shock-resistance compared to hard disk drives. However, solid-state nonvolatile media can have characteristics that need to be managed in order to maintain the integrity of information stored on the nonvolatile media and to maintain the operational life of the nonvolatile medium. For example, a given storage cell of a solid-state nonvolatile medium may only operate for a limited number of program-erase cycles before the given storage cell fails. As another example, information stored within a given storage cell can degrade or lose integrity over time and so the information may need to be refreshed by moving the information to a different storage cell. Thus, it can be desirable to manage where information is stored within the nonvolatile medium and when the information is to be moved within the nonvolatile medium.